The Hypertext Transfer Protocol (“HTTP”) is currently a popular method of delivering content such as videos, pictures, text, etc. over the Internet. In many current applications, such as streaming video files, content is made available progressively through repeated requests from the receiver device to an HTTP server for sequential segments of the content. The segments' availability follows a timeline that indicates when each successive segment becomes available in the HTTP server.
Dynamic Adaptive Streaming Over Hypertext Transfer Protocol (“DASH”) is a standard that implements HTTP streaming. DASH announces the segments' availability in a Media Presentation Description (“MPD”) that is sent to the receiver device. The MPD describes the media components associated with a DASH media presentation and declares a segment availability timeline that announces the segments, the times segments are available, and the size of the segments.
Currently, a receiver device may render a stream of content by continually requesting the next segment of content from the content provider while playing the current segment of content. To gather a segment needed to render the content, a DASH enabled application/client running on the receiver device sends an HTTP request to an HTTP server to request the next segment identified in the MPD. The HTTP server responds with the requested segment or responds with an HTTP redirect message indicating another Uniform Resource Locator (“URL”) to which the DASH client should send a subsequent HTTP request for the segment.
DASH also allows more than one representation (e.g., video quality version) of each segment to be made available. For example, more than one representation of each segment may be made available by hosting a high bit rate/quality version of a segment on one server (e.g., URL) and a low bit rate/quality version of the same segment on another server. A DASH application/client may then retrieve either the high bit rate/quality version (e.g., when reception bandwidth is high) or the low bit rate/quality version of the segment (e.g., when reception band width is low), and render either version. If the receiver device is experiencing very high bandwidth, it may download both high and low quality representations.